/**
 * 
 */
package inmobiliaria.frsf.dao.impl;

import inmobiliaria.frsf.dao.PropietarioDAO;
import inmobiliaria.frsf.model.Propietario;
import inmobiliaria.frsf.resources.connect.SqlMapConfig;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.ibatis.sqlmap.client.SqlMapClient;

/**
 * @author Lucas
 * 
 */
public class PropietarioDAOImpl implements PropietarioDAO {

	private SqlMapClient sqlMapClient = SqlMapConfig.getSqlMap();

	/*
	 * (non-Javadoc)
	 * 
	 * @see
	 * inmobiliaria.frsf.dao.PropietarioDAO#guardar(inmobiliaria.frsf.model.
	 * Propietario)
	 */
	public Integer guardar(Propietario propietario) throws Exception {
		return (Integer) sqlMapClient.insert("insertPropietario", propietario);
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see inmobiliaria.frsf.dao.PropietarioDAO#getById(java.lang.Integer)
	 */
	public List<Propietario> searchPropietario(Map<String, Object> datos)
			throws Exception {

		List<Propietario> propietarios = (List<Propietario>) sqlMapClient
				.queryForList("datosPersona", datos);

		return propietarios;
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see
	 * inmobiliaria.frsf.dao.PropietarioDAO#searchPropietario(java.lang.Integer)
	 */
	public Propietario searchPropietario(Integer idPersona) throws Exception {
		Map<String, Object> datosConsulta = new HashMap<String, Object>();
		datosConsulta.put("id", idPersona);
		Propietario propietario = (Propietario) sqlMapClient.queryForObject(
				"datosPersona", datosConsulta);

		return propietario;
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see inmobiliaria.frsf.dao.PropietarioDAO#editar(inmobiliaria.frsf.model.
	 * Propietario)
	 */
	public void editar(Propietario propietario) throws Exception {
		sqlMapClient.update("updatePropietario", propietario);
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see inmobiliaria.frsf.dao.PropietarioDAO#eliminar(java.lang.Long)
	 */
	public void eliminar(Long id) throws Exception {
		sqlMapClient.delete("deletePropietario", id);

	}

	/**
	 * @return the sqlMapClient
	 */
	public SqlMapClient getSqlMapClient() {
		return sqlMapClient;
	}

	/**
	 * @param sqlMapClient
	 *            the sqlMapClient to set
	 */
	public void setSqlMapClient(SqlMapClient sqlMapClient) {
		this.sqlMapClient = sqlMapClient;
	}

}
